package com.csw.bootstrapjqgrid.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 1
 */
@Mapper
public interface BaseDAO<T> {

    /**
     * 保存
     *
     * @param t t
     */
    void save(T t);

    /**
     * 更新
     *
     * @param t t
     */
    void update(T t);

    /**
     * 删除
     *
     * @param id id
     */
    void delete(String id);

    /**
     * 查找
     *
     * @param id id
     * @return t
     */
    T find(String id);

    /**
     * 找所有
     *
     * @return list
     */
    List<T> findAll();

    /**
     * 分页找
     *
     * @param start start
     * @param rows  rows
     * @return 0
     */
    List<T> findByPage(@Param("start") Integer start, @Param("rows") Integer rows);

    /**
     * 计数
     *
     * @return 0
     */
    Long findTotalCounts();
}
